package cn.changeforyou.web.dao.mybatis.ext.metaInfo;

import lombok.Data;
import org.apache.ibatis.mapping.SqlCommandType;

/**
 * 一个mybatis的dao层方法映射一个MappedStatementMetaInfo信息
 *
 * @author zhyu
 * @version 1.0
 * @date 2022/2/9 21:12
 */
@Data
public class MappedStatementMetaInfo {
    /**
     * 实体类元数据
     */
    private EntityMetaInfo entityMetaInfo;

    /**
     * 视图类元数据
     */
    private EntityMetaInfo voMetaInfo;

    /**
     * 数据传输类元数据
     */
    private EntityMetaInfo dtoMetaInfo;
    /**
     * 数据查询类元数据
     */
    private ConditionMetaInfo conditionMetaInfo;
    /**
     * mybatis的ResultType
     */
    private Class resultType;
    /**
     * sql
     */
    private String sql;
    /**
     * sql语句类型
     */
    private SqlCommandType sqlCommandType;
    /**
     * 基础信息
     */
    private MappedStatementBaseInfo mappedStatementBaseInfo;

    /**
     * 是否启用alias
     */
    private boolean openAlias;

    /**
     * 是否启用关联查询
     */
    private boolean openRelationSelect;

    /**
     * 逻辑删除信息
     */
    private FieldMetaInfo logicDelInfo;
    /**
     * 是否关闭逻辑删除
     */
    private boolean closeLogicDel;
}